package com.info.zhiduoduo.repository.entity.foreign;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 第三方支付交易记录
 * </p>
 *
 * @author bob
 * @since 2020-09-02
 */
@Data
@Accessors(chain = true)
@TableName("zdd_foreign_trade_record")
public class ForeignTradeRecord extends Model<ForeignTradeRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * 交易id
     */
    @TableId(value = "tradeid", type = IdType.AUTO)
    private Integer tradeid;
    /**
     * 流水单号
     */
    private String tradeno;
    /**
     * 第三方平台订单号
     */
    @TableField("partner_order_no")
    private String partnerOrderNo;
    /**
     * 第三方支付平台请求流水号
     */
    private String requestid;
    /**
     * 商户账户NO
     */
    @TableField("merchant_no")
    private String merchantNo;
    /**
     * 项目id
     */
    @TableField("project_id")
    private Integer projectId;
    /**
     * 用户id
     */
    private Integer userid;
    /**
     * 1:自然人
     */
    private Integer idtype;
    /**
     * 交易金额
     */
    private BigDecimal tradeamount;
    /**
     * 交易类型 1:代付 2:代收
     */
    private Integer tradetype;
    /**
     * 开户行
     */
    private String bankname;
    /**
     * 开户行行号（电子联行号）对公需要校验，对私填写000000000000（12个0）
     */
    private String bankno;
    /**
     * 收付款方姓名
     */
    private String acctname;
    /**
     * 银行卡号
     */
    private String acctno;
    /**
     * 1:代表个人账户  2:代表企业账户
     */
    private Integer accttype;
    /**
     * 支付账户: 1:九歌统一账户 2:企业自己商户号
     */
    @TableField("pay_account")
    private Integer payAccount;
    /**
     * 交易业务类型 1:项目款 2:支付给九歌的费用(税费+服务费+合伙人佣金)
     */
    @TableField("business_type")
    private Integer businessType;
    /**
     * 交易说明
     */
    private String purpose;
    /**
     * 备注
     */
    private String remark;
    /**
     * 交易时间
     */
    private Date tradetime;
    /**
     * 交易状态 0:创建中 1:已受理 2:处理中 3:交易成功 4:交易失败 5:交易拒绝
     */
    private Integer tradestate;
    /**
     * 是否已经重新提交交易 0：否 1：是
     */
    private Integer repay;
    /**
     * 订单处理响应码
     */
    private String errorcode;
    /**
     * 订单处理响信息
     */
    private String errormsg;
    /**
     * 交易结束时间 成功,失败或拒绝
     */
    private Date finishtime;
    /**
     * 创建时间
     */
    private Date createtime;


    @Override
    protected Serializable pkVal() {
        return this.tradeid;
    }

}
